// pages/index/question/detail/detail.js
const app = getApp()
import Notify from '@vant/weapp/notify/notify';
Page({

	/**
	 * 页面的初始数据
	 */
	data: {
		passage: {},
		comments: [],
		//写评论的遮掩层
		show: false,
		//评论内容
		message: '',
		//父级评论id
		pid: '',
		//父级评论userid
		puser: ''
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad(options) {
		var json = options.question;
		var obj = JSON.parse(json)
		console.log(obj)
		this.setData({
			passage: obj
		})
	},

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady() {

	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow() {
		this.getAllComments()
	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide() {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload() {

	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh() {

	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom() {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage() {

	},
	getAllComments() {
		app.request({
			url: app.globalData.apiUrl + '/question/' + this.data.passage.id,
			method: 'GET',
		}).then(res => {
			if (res.statusCode == 200) {
				let temp = res.data.data;
				for (var i in temp) {
					if (temp[i].pid != null || '') {
						let temp_index = this.getArrayItemIndex(temp, temp[i].pid)
						temp[i].pbody = temp[temp_index].body
					}
				}
				console.log(temp)
				this.setData({
					comments: temp,
				})
				console.log(this.data.comments)
			} else {
				Notify('服务错误，稍后重试');
			}
		})
	},
	//操作写普通级评论的弹出层
	showPopup() {
		this.setData({
			show: true
		});
	},
	//写子级评论弹出层，需要接收父级评论参数
	showPopup2(e) {
		console.log(e)
		this.setData({
			show: true,
			pid: e.target.dataset.pid,
			puser: e.target.dataset.puser
		});
	},
	onClose() {
		this.setData({
			show: false,
			message: '',
			pid: '',
			puser: ''
		});
	},
	//提交评论
	commit() {
		let comment = JSON.stringify({
			type: 2,
			textId: this.data.passage.id,
			body: this.data.message,
			puser: this.data.puser,
			pid: this.data.pid,
			createTime: Date.parse(new Date())
		})
		app.request({
			url: app.globalData.apiUrl + '/question/comment/' + comment,
			method: 'POST'
		}).then(res => {
			this.onClose()
			if (res.statusCode == 200) {
				this.getAllComments()
			} else {
				loadModel: false
				Notify('服务错误，稍后重试');
			}
		})
	},
	//获取数组中某个元素属性的下标
	getArrayItemIndex(arr, id) {
		var index = -1;
		if (typeof Array.prototype.findIndex === 'function') {
			index = arr.findIndex(function (item) {
				return item.id === id;
			});
		} else {
			for (var i = 0; i < arr.length; i++) {
				if (arr[i].id === id) {
					index = i;
					break;
				}
			}
		}
		return index;
	},
})